# Script Name	: sqlite_table_check.py
# Author		: Craig Richards
# Created		: 07 June 2013
# Last Modified	:
# Version		: 1.0

# Modifications	:

# Description	: Checks the main SQLITE database to ensure all the tables should exist


import os
import sqlite3

dropbox = os.getenv("dropbox")
config = os.getenv("my_config")
dbfile = ("Databases\jarvis.db")
listfile = ("sqlite_master_table.lst")
master_db = os.path.join(dropbox, dbfile)
config_file = os.path.join(config, listfile)
tablelist = open(config_file, 'r');

conn = sqlite3.connect(master_db)
cursor = conn.cursor()
cursor.execute('SELECT SQLITE_VERSION()')
data = cursor.fetchone()

if str(data) == "(u'3.6.21',)":
    print("\nCurrently " + master_db + " is on SQLite version: %s" % data + " - OK -\n")
else:
    print("\nDB On different version than master version - !!!!! \n")
conn.close()

print("\nCheckling " + master_db + " against " + config_file + "\n")

for table in tablelist.readlines():
    conn = sqlite3.connect(master_db)
    cursor = conn.cursor()
    cursor.execute("select count(*) from sqlite_master where name = ?", (table.strip(),))
    res = cursor.fetchone()

    if (res[0]):
        print('[+] Table : ' + table.strip() + ' exists [+]')
    else:
        print('[-] Table : ' + table.strip() + '  does not exist [-]')
